const schedule = require('node-schedule');
const fs = require('fs');
const path = require('path');

// 删除单个文件
function deleteFile(filePath) {
	fs.unlink(filePath, (err) => {
		if (err) throw err;
		console.log(`${filePath}删除成功`);
	});
}

// 删除文件夹内所有文件
function deleteFolderFiles(folderPath) {
	fs.readdir(folderPath, (err, files) => {
		if (err) throw err;

		for (const file of files) {
			const filePath = path.join(folderPath, file);
			fs.unlink(filePath, (err) => {
				if (err) throw err;
				console.log(`${filePath}删除成功`);
			});
		}
	});
}

/**
 * scheduleJob函数的第一个参数是一个string类型的cron表达式，
 * 由五个空格分隔的时间单位组成，分别代表了分钟、小时、日期、月份和星期几。
 */
// 删除单个文件定时任务
const scheduledDeletionFile = (filePath) => {
	schedule.scheduleJob('0 0 * * *', function () {
		// 在每天的0点执行删除任务
		// const filePath = './path/to/file'; // 文件路径
		deleteFile(filePath);
	});
}


// 删除文件夹内所有文件定时任务
const scheduledDeletionFolderFiles = (folderPath) => {
	// const folderPath = './public/uploads'; // 文件夹路径
	schedule.scheduleJob('0 0 * * *', function () {
		// 在每天的0点执行删除任务
		deleteFolderFiles(folderPath);
	});
}
module.exports = {
	scheduledDeletionFile,
	scheduledDeletionFolderFiles
}